#pragma once
#include <windows.h>
#include <d3d11.h>
#include <d3dx11.h>
#include <d3dcompiler.h>
#include <xnamath.h>
#include <vector>

using namespace std;
class Noise
{
public:
	Noise(){}
	

	int* _grad3[12] ;

	

	// To remove the need for index wrapping, double the permutation table length.

	int _perm[512];

	void Initialize(void);

	// This method is a *lot* faster than using (int)Math.floor(x)

	int FastFloor(float x);

	float Dot(int* g, float x, float y);

	float Dot(int* g, float x, float y, float z);

	float Dot(int* g, float x, float y, float z, float w);

	// 3D simplex noise.
	float GenNoise(float xin, float yin, float zin);

};
